#ifndef VIRT_KB_H
#define VIRT_KB_H

#include "lvgl/lvgl.h"

/**
 * 虚拟键盘对象结构体
 */
typedef struct {
    lv_obj_t *kb;           /* LVGL键盘对象 */
    lv_obj_t *ta;           /* 当前关联的文本输入框 */
    bool is_visible;        /* 键盘是否可见 */
} virt_kb_t;

/**
 * 初始化虚拟键盘
 * @return 返回虚拟键盘对象指针
 */
virt_kb_t *virt_kb_init(void);

/**
 * 显示虚拟键盘
 * @param kb 虚拟键盘对象
 * @param ta 目标文本输入框
 */
void virt_kb_show(virt_kb_t *kb, lv_obj_t *ta);

/**
 * 隐藏虚拟键盘
 * @param kb 虚拟键盘对象
 */
void virt_kb_hide(virt_kb_t *kb);

/**
 * 销毁虚拟键盘
 * @param kb 虚拟键盘对象
 */
void virt_kb_destroy(virt_kb_t *kb);

#endif /* VIRT_KB_H */